package com.anjiplus.template.gaea.business.modules.flowable.process.controller.dto;

import com.anji.plus.gaea.annotation.Formatter;
import com.anji.plus.gaea.constant.GaeaConstant;
import com.anji.plus.gaea.constant.GaeaKeyConstant;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 任务详情
 * @author lr
 * @since 2021-03-29
 */
@Getter
@Setter
public class TaskInfoDTO {
    private String assignee;
    private String category;
    @JsonFormat(pattern = GaeaConstant.TIME_PATTERN,timezone = "GMT+8")
    private Date claimTime;
    @JsonFormat(pattern = GaeaConstant.TIME_PATTERN,timezone = "GMT+8")
    private Date createTime;
    private String deleteReason;
    private Boolean deleted;
    private String description;
    private String dueDate;
    private String durationInMillis;
    @JsonFormat(pattern = GaeaConstant.TIME_PATTERN,timezone = "GMT+8")
    private Date endTime;
    private String executionId;
    private String formKey;
    private String id;
    private String idPrefix;
    @JsonFormat(pattern = GaeaConstant.TIME_PATTERN,timezone = "GMT+8")
    private Date lastUpdateTime;
    private String name;
    private String originalPersistentState;
    private String owner;
    private String parentTaskId;
    private Map<String, Object> persistentState;
    private String priority;
    private String processDefinitionId;
    private String processInstanceId;
    private Map<String, Object> processVariables;
    private String propagatedStageInstanceId;
    private String revision;
    private String revisionNext;
    private String scopeDefinitionId;
    private String scopeId;
    private String scopeType;
    @Formatter(key = GaeaKeyConstant.USER_NICKNAME_KEY)
    private Date startTime;
    private String subScopeId;
    private String taskDefinitionId;
    private String taskDefinitionKey;
    private String taskLocalVariables;
    private String tenantId;
    @JsonFormat(pattern = GaeaConstant.TIME_PATTERN,timezone = "GMT+8")
    private Date time;
    private Boolean updated;
    private String workTimeInMillis;

    private List<CommentDTO> comments;
}
